// src/types/api/user.ts

export interface UserInfo {
  id: number;
  username: string;
  fullName: string;
  roles: string[];
}

/**
 * 用户详情 (GET /users 的响应列表中的一项)
 * 对应后端的 UserWithRolesResultMap
 */
export interface UserDetail {
  id: string; // 后端返回的 Long 会被序列化为字符串
  username: string;
  fullName: string;
  status: number;
  createdAt: string; // 后端返回的 LocalDateTime 会被序列化为 ISO 字符串
  roles: Role[]; // 包含完整的角色对象列表
}

/**
 * 用户创建请求 DTO (POST /users)
 * 对应后端 UserCreateRequest
 */
export interface UserCreateRequest {
  username: string;
  password: string;
  fullName?: string;
  roleIds: number[];
}

/**
 * 用户更新请求 DTO (PUT /users/{id})
 * 对应后端 UserUpdateRequest
 */
export interface UserUpdateRequest {
  fullName?: string;
  status?: number;
  roleIds: number[];
}

/**
 * 通用的分页查询参数 (前端组件使用)
 */
export interface PageParams {
  current: number; // Arco Design 分页器使用 'current'
  pageSize: number; // Arco Design 分页器使用 'pageSize'
  username?: string; // 可选的搜索参数
}

/**
 * 通用的分页响应结构 (对应后端 IPage<T>)
 */
export interface PaginatedResponse<T> {
  records: T[];
  total: number;
  size: number;
  current: number;
}
